import { ipcMain, type BrowserWindow } from 'electron'
import * as preloadNames from './preload-name'

/**
 * 创建 IPC 处理器
 *
 * @param mainWindow 主窗口
 */
export function createIpcHandlers(mainWindow: BrowserWindow) {
  ipcMain.handle(preloadNames.TOGGLE_DEV_TOOLS, (_, visible = !mainWindow.webContents.isDevToolsOpened()) =>
    toggleDevTools(mainWindow, visible)
  )
}

/**
 * 切换开发者工具的显示与隐藏
 *
 * @param mainWindow 主窗口
 * @param visible 是否显示开发者工具
 * @returns 是否成功
 */
function toggleDevTools(mainWindow: BrowserWindow, visible: boolean) {
  if (process.env.NODE_ENV !== 'development') {
    return false
  }

  if (visible) {
    mainWindow.webContents.openDevTools({ mode: 'bottom' })
  } else {
    mainWindow.webContents.closeDevTools()
  }
  return true
}
